#! /usr/bin/env python
# coding:utf-8

"""
问题
定义一个20*5的二维数组，用来存储某班级20位学员的5门课的成绩；这5门课按存储顺序依次为：core C++，coreJava，Servlet，JSP和EJB。
（1）循环给二维数组的每一个元素赋0~100之间的随机整数。
（2）按照列表的方式输出这些学员的每门课程的成绩。
（3）要求编写程序求每个学员的总分，将其保留在另外一个一维数组中。
（4）要求编写程序求所有学员的某门课程的平均分。
"""
from __future__ import division
import random


def score(score_list, course_list, student_num):
    course_num = len(course_list)

    every_score = [[score_list[j][i] for j in range(course_num)] for i in range(student_num)]

    every_total = [sum(every_score[i]) for i in range(student_num)]

    ave_course = [sum(score_list[i]) / len(score_list[i]) for i in range(len(score_list))]

    return (every_score, every_total, ave_course)


if __name__ == "__main__":

    course_list = ["C++", "Java", "Servlet", "JSP", "EJB"]
    student_num = 20

    score_list = [[random.randint(0, 100) for i in range(student_num)] for j in range(len(course_list))]
    for i in range(len(course_list)):
        print("score of every one in %s:" % course_list[i])
        print(score_list[i])

    every_score, every_total, ave_one_course = score(score_list, course_list, student_num)
    print("\n")
    print("NEXT IS EVERY ONE SCORE IN EVERY COURSE:")
    for name in course_list:
        print(name, )
    print("\t")
    print(every_score)
    print("\n")
    print("every one all score:\t", every_total)
    print("every course of average score:\t", ave_one_course)
